<!--
 * 严肃声明：
 * 开源版本请务必保留此注释头信息，若删除我方将保留所有法律责任追究！
 * 本系统已申请软件著作权，受国家版权局知识产权以及国家计算机软件著作权保护！
 * 可正常分享和学习源码，不得用于违法犯罪活动，违者必究！
 * Copyright (c) 2020 陈尼克 all rights reserved.
 * 版权所有，侵权必究！
 *
-->

<template>
  <div class="product-detail">
    <s-header :name="'商品详情'"></s-header>
    <div class="detail-content">
      <div class="detail-swipe-wrap">
        <van-swipe class="my-swipe" indicator-color="#1baeae">
          <van-swipe-item v-for="(item, index) in detail.goodsCarouselList" :key="index">
            <img :src="prefix(item)" alt="">
          </van-swipe-item>
        </van-swipe>
      </div>
      <div class="product-info">
        <div class="product-title">
          {{ detail.goodsName }}
        </div>
        <div class="product-desc">免邮费 顺丰快递</div>
        <div class="product-price">
          <span>¥{{ detail.sellingPrice }}</span>
          <!-- <span>库存203</span> -->
        </div>
      </div>
      <div class="product-intro">
        <ul>
          <li>概述</li>
          <li>参数</li>
<!--          <li>安装服务</li>-->
<!--          <li>常见问题</li>-->
        </ul>
        <div>
          <van-cell-group>
<!--            <van-cell title="Spu属性" />-->
            <div v-for="item in spu" :key="item.id">
              <van-cell :title=item.name :label=item.value />
            </div>
          </van-cell-group>
        </div>
        <div class="product-content" v-html="detail.goodsDetailContent"></div>
      </div>
    </div>
<!--    <van-popup v-model="show" round position="bottom" :style="{ height: '30%' }" />-->
    <div  style="max-height: 100%;overflow-y: auto">
      <van-sku
        v-model="show"
        :sku="sku"
        :goods="goods"
        :goods-id="goodsId"
        :hide-stock="sku.hide_stock"
        @buy-clicked="goToCart"
        @add-cart="addCart"
        ref="getSku"
      >
        <template #sku-header-price="props">
          <div class="van-sku__goods-price">
      <span class="van-sku__price-symbol">￥</span
      ><span class="van-sku__price-num">{{ Number(props.price*100.0).toFixed(2) }}</span>
          </div>
        </template>
      </van-sku>
    </div>
    <van-goods-action>
      <van-goods-action-icon icon="chat-o" text="客服" />
      <van-goods-action-icon icon="cart-o" :info="!count ? '' : count" @click="goTo()" text="购物车"/>
      <van-goods-action-button type="warning" @click="show=true" text="加入购物车" />
      <van-goods-action-button type="danger" @click="goToCart" text="立即购买" />
    </van-goods-action>
  </div>
</template>

<script>
import { getDetail ,getSku,getSpu} from '../service/good'
import { addCart } from '../service/cart'
import sHeader from '@/components/SimpleHeader'
import { Toast } from 'vant'
import { Sku } from 'vant';
import Vue from "vue";
Vue.use(Sku);
export default {

  data() {
    return {
      spu:[],//spu属性表
      sku: {
        // 所有sku规格类目与其值的从属关系，比如商品有颜色和尺码两大类规格，颜色下面又有红色和蓝色两个规格值。
        // 可以理解为一个商品可以有多个规格类目，一个规格类目下可以有多个规格值。
        tree: [
          {
            k: '颜色', // skuKeyName：规格类目名称
            k_s: 's1', // skuKeyStr：sku 组合列表（下方 list）中当前类目对应的 key 值，value 值会是从属于当前类目的一个规格值 id
            v: [
              {
                id: '1', // skuValueId：规格值 id
                name: '红色', // skuValueName：规格值名称
                imgUrl: 'https://img01.yzcdn.cn/1.jpg', // 规格类目图片，只有第一个规格类目可以定义图片
                previewImgUrl: 'https://img01.yzcdn.cn/1p.jpg', // 用于预览显示的规格类目图片
              },
              {
                id: '2',
                name: '蓝色',
                imgUrl: 'https://img01.yzcdn.cn/2.jpg',
                previewImgUrl: 'https://img01.yzcdn.cn/2p.jpg',
              }
            ],
            largeImageMode: true, //  是否展示大图模式
          },
          {
            k: '尺码', // skuKeyName：规格类目名称
            k_s: 's2', // skuKeyStr：sku 组合列表（下方 list）中当前类目对应的 key 值，value 值会是从属于当前类目的一个规格值 id
            v: [
              {
                id: '1', // skuValueId：规格值 id
                name: 'xxl', // skuValueName：规格值名称
                imgUrl: 'https://img01.yzcdn.cn/1.jpg', // 规格类目图片，只有第一个规格类目可以定义图片
                previewImgUrl: 'https://img01.yzcdn.cn/1p.jpg', // 用于预览显示的规格类目图片
              },
              {
                id: '2',
                name: 'M',
                imgUrl: 'https://img01.yzcdn.cn/2.jpg',
                previewImgUrl: 'https://img01.yzcdn.cn/2p.jpg',
              }
            ],
            largeImageMode: true, //  是否展示大图模式
          }
        ],
        // 所有 sku 的组合列表，比如红色、M 码为一个 sku 组合，红色、S 码为另一个组合
        list: [
          {
            id: 1, // skuId
            s1: '1', // 规格类目 k_s 为 s1 的对应规格值 id
            s2: '1', // 规格类目 k_s 为 s2 的对应规格值 id
            price: 20000, // 价格（单位分）
            stock_num: 110 // 当前 sku 组合对应的库存
          },
          {
            id: 2, // skuId
            s1: '1', // 规格类目 k_s 为 s1 的对应规格值 id
            s2: '2', // 规格类目 k_s 为 s2 的对应规格值 id
            price: 50000, // 价格（单位分）
            stock_num: 110 // 当前 sku 组合对应的库存
          },
          {
            id: 3, // skuId
            s1: '2', // 规格类目 k_s 为 s1 的对应规格值 id
            s2: '1', // 规格类目 k_s 为 s2 的对应规格值 id
            price: 60000, // 价格（单位分）
            stock_num: 110 // 当前 sku 组合对应的库存
          },
          {
            id: 4, // skuId
            s1: '2', // 规格类目 k_s 为 s1 的对应规格值 id
            s2: '2', // 规格类目 k_s 为 s2 的对应规格值 id
            price: 700000, // 价格（单位分）
            stock_num: 110 // 当前 sku 组合对应的库存
          },
        ],
        price: '1.00', // 默认价格（单位元）
        stock_num: 227, // 商品总库存
        collection_id: 2261, // 无规格商品 skuId 取 collection_id，否则取所选 sku 组合对应的 id
        none_sku: false, // 是否无规格商品
        hide_stock: false // 是否隐藏剩余库存
      },
      // show:false,
      goodsId:'',
      goods: {
        // 默认商品 sku 缩略图
        picture: this.detail.goodsCarouselList[0]
      },
      show:false,//商品规格弹框
      price:'0',//商品默认价格
      stock_num:'0',//商品默认总库存
      if_sku:true,//判断该商品是否有规格
      skuPrice:[{
        price:20,
        prop: [{"name":"颜色","value":"黄色"},{"name":"尺码","value":"L"}],
        stock:20,
        product_id:7,
      },
        {
          price:20,
          prop: [{"name":"颜色","value":"橙色"},{"name":"尺码","value":"L"}],
          stock:20,
          product_id:7,
        },
        {
          price:20,
          prop: [{"name":"颜色","value":"黄色"},{"name":"尺码","value":"M"}],
          stock:20,
          product_id:7,
        },
        {
          price:20,
          prop: [{"name":"颜色","value":"橙色"},{"name":"尺码","value":"M"}],
          stock:20,
          product_id:7,
        },
      ],//规格对应的价格和库存
      select_id:[],//选中的规格id、组成的数组
      select_id2:[],//选中的规格id、需要提交给后台
      value:'',//商品购买数量
      detail: {
        goodsCarouselList: [],
      },

    }
  },
  components: {
    sHeader
  },
  async mounted() {

    const { id } = this.$route.params
    const { data } = await getDetail(id)
    await this.getSkuValue(6)
    await this.getSpuValue(6)
    console.log(id)
    this.detail = data

    // this.goodsId=id;
  },
  methods: {
    getSpuValue(id){
      getSpu(id).then(response=>{
        this.spu=response.data;
      })
    },
    getSkuValue(id){
      getSku(id).then(response=>{
        this.sku=response.data
      })
    },
    goBack() {
      this.$router.go(-1)
    },
    goTo() {
      this.$router.push({ path: '/cart' })
    },
    async addCart() {
      this.show=true
      console.log(this.$refs.getSku.getSkuData())
      console.log(this.$refs.getSku.getSkuData().selectedSkuComb)
      console.log(this.$refs.getSku.getSkuData().goodsId)
      console.log(this.$refs.getSku.getSkuData().selectedNum)
      console.log(this.$refs.getSku.getSkuData().id)
      const { data, resultCode } = await addCart({ goodsCount: this.$refs.getSku.getSkuData().selectedNum, goodsId: this.detail.goodsId ,stockId:this.$refs.getSku.getSkuData().selectedSkuComb.id})
      if (resultCode == 200 ) Toast.success('添加成功')
      this.$store.dispatch('updateCart')
    },
    async goToCart() {
      this.show=true;
      // const { data, resultCode } = await addCart({ goodsCount: this.$refs.getSku.getSkuData().selectedNum, goodsId: this.detail.goodsId，stockId:this.$refs.getSku.getSkuData().selectedSkuComb.id })
      // this.$store.dispatch('updateCart')
      // this.$router.push({ path: '/cart' })
    }
  },
  computed: {
    count () {
      return this.$store.state.cartCount
    }
  }
}
</script>

<style lang="less">
  @import '../common/style/mixin';
  .product-detail {
    .detail-header {
      position: fixed;
      top: 0;
      left: 0;
      z-index: 10000;
      .fj();
      .wh(100%, 44px);
      line-height: 44px;
      padding: 0 10px;
      .boxSizing();
      color: #252525;
      background: #fff;
      border-bottom: 1px solid #dcdcdc;
      .product-name {
        font-size: 14px;
      }
    }
    .detail-content {
      margin-top: 44px;
      .detail-swipe-wrap {
        .my-swipe .van-swipe-item {
          img {
            width: 100%;
            // height: 300px;
          }
        }
      }
      .product-info {
        padding: 0 10px;
        .product-title {
          font-size: 18px;
          text-align: left;
          color: #333;
        }
        .product-desc {
          font-size: 14px;
          text-align: left;
          color: #999;
          padding: 5px 0;
        }
        .product-price {
          .fj();
          span:nth-child(1) {
            color: #F63515;
            font-size: 22px;
          }
          span:nth-child(2) {
            color: #999;
            font-size: 16px;
          }
        }
      }
      .product-intro {
        width: 100%;
        ul {
          .fj();
          width: 100%;
          margin: 10px 0;
          li {
            flex: 1;
            padding: 5px 0;
            text-align: center;
            font-size: 15px;
            border-right: 1px solid #999;
            box-sizing: border-box;
            &:last-child {
              border-right: none;
            }
          }
        }
        .product-content {
          padding: 0 20px;
          img {
            width: 100%;
          }
        }
      }
    }
    .van-goods-action-button--warning {
      background: linear-gradient(to right,#6bd8d8, @primary)
    }
    .van-goods-action-button--danger {
      background: linear-gradient(to right, #0dc3c3, #098888)
    }
  }
</style>
